Skip to content

Conversation

@RazorClient
Copy link

@RazorClient RazorClient commented Oct 17, 2025

WIP

Adds engine api definitions to be used in FOCIL

agnxsh and others added 27 commits April 1, 2025 17:27
* conflict resolved

* getBlobsV2

* fix

* revert random object check on BlobAndProofV2

* have a rand function for BlobAndProofV2

* another fix

* addressed reviews

* update link
…tus-im#198)

* Fusaka: Add EIP-7873 fields to TransactionObject/TransactionArgs

* Fix: fields should be Optional

* Fix transaction signing
`TxEip7873` requires nim-eth to be at least 0.7.0.

```
./nim-web3/web3/transaction_signing.nim(98, 32) Error: undeclared identifier: 'TxEip7873'
```
- getBlobsV2
- use spec names for spec constants
- Fusaka: Add EIP-7873 fields to TransactionObject/TransactionArgs
- Bump nim-eth minimum to 0.7.0
* init payloadV5

* fix other v5 stuff
`TxEip7873` has been removed from nim-eth.
- init payloadV5
- rm EIP-7873 support
- Bump nim-eth minimum to 0.8.0
* Replace PooledTransaction usage from test

Since PooledTransaction has been removed from nim-eth.
We only need a minimum rlp reader to pass the test.
And make clear the distinction between PooledTransaction hash
and inner tx hash.

* revert import
* Improve the readme

* Add nodemon globally installation instructions

* Fix typo

* Add fetch submodules instruction
* On JSON-RPC, authorization serializes v as yParity

JSON uses yParity for authorization instead of v like in transaction,
because v for transaction has additional information mixed in in legacy
case (chain ID and magic value); this legacy case is not relevant for
authorizations. Existing logic ignored yParity value from JSON and uses
default initialized v = 0 value. Create our own web3 type, same as how
we do it for transactions and receipts, and use correct yParity key.

* Fix deps

* Use flavor automatic serialization

* eth_api seq[string]

* adjust JSON marshalling tests (status-im#202)

Co-authored-by: Jacek Sieka <[email protected]>

* Custom serializer for TransactionArgs: oneof input or data field

* cleanup

---------

Co-authored-by: jangko <[email protected]>
Co-authored-by: tersec <[email protected]>
Co-authored-by: Jacek Sieka <[email protected]>
* eth_config basic setup

* Add custom serialization and add hash/forkid fields

* remove importutils import

* Don't update to pkg/results yet

* import njs/pkg/results

* update to Uint256

* update activation time to Quantity

* allow nil return

* adjust to new eip changes

* use JsonNumber

* add timestamp

* shift to generalized primtive Number

* incorporate suggestions

---------

Co-authored-by: jangko <[email protected]>
* Add nimbledeps to gitignore

* Add abi encoder

* Add encoding tests

* Add AbiEncoder

* Add encoding tests

* Fix async signature

* Add encoding tests to all tests

* Do not bubble the exception

* Add proper error handling

* Use faststream to simplify internal logic

* Partial implementation of the decoding

* Fix tuple encoding and try to provide better docs / tests

* Update abi util to to take tuple in consideration

* Add deprecation notice

* Refactor the dynamic array / seq decoding

* Add decoding

* Add ABI encoder / decoder to the readme

* Fix indent

* Export decoding

* Restore previous encoding functions and mark them deprecated

* Remove compiler hints and warnings

* Use inputStream signature and use readAll

* Add custom types

* Cleanup

* Add support for serialization

* Add support for dontSerialize pragma

* Add readValue compatibility

* Add readme for serialization

* Use enumInstanceSerializedFields to get the serialized fields instead of checking manually the pragma

* Use Abi serialization as main interface

* Update README

* Update deprecation message and export abi_serialization

* Update deprecation message and export abi_serialization

* Add tests for string

* Test encode empty string

* Encode object as tuple

* Remove ref object

* Ensure that object are encoded as tuple

* Decode object as tuple

* Remove compilation hint

* Remove unused import

* Replace ABI encoding and decoding by the new encoding method

* Improve serialization test

* Add test more 3 slots

* Remove unused variables

* Use existing type T to get the arity

* Use advance function to point on the right position instead of copying the whole buffer

* Use local encoder instead of calling Abi.encode

* Use SomeRange type in testing

* Add overflow detection when decoding int and provide clearer comments

* Re organize comments

* Fix indentation

* Add raises pragma

* Remove int / uint support

* Use toOpenArray method and replace StUint usage by uint.

* Use used pragma

* Reject range with int / uint value

* Apply toOpenArray function

* Remove unused function

* Check hardhat version on ci

* Update ci with hardhat 3

* Remove the intermediate data seq

* Remove comment

* Remove comment

* Use explicit return
* fix: readValue UInt256 error

Fixing `readValue(reader`gensym50, result)' is of type 'UInt256' and has
to be used (or discarded)` error by ensuring value returned by
`readValue` is used.

* Only one readValue function needs to be defined

* ci: force arm64 target

For some reason, clang assumed x86_64 and rejected nimcrypto's
"-march=armv8-a+crypto" flag.
* Updates to support the new json_serialization streaming
* New ABI encoder/decoder
(status-im#216)
@RazorClient RazorClient marked this pull request as ready for review October 26, 2025 16:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.